From: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Fri, 31 Jan 2014 21:25:51 +0000 (+0100)
Subject: Add MC for the full screen
X-Git-Url: https://git.owens.tech/assets/lich_lifts_title_slice.png%20%22Lich%20Lifts%22/assets/lich_lifts_title_slice.png%20%22Lich%20Lifts%22/git?a=commitdiff_plain;h=6166a1afc8c7875ce9ba62e5001040014269a26d;p=st.git

Add MC for the full screen

This sequence is very useful because allows comunicate the content
of the terminal to another program.
---

diff --git a/st.c b/st.c
index e60643c..1711842 100644
--- a/st.c
+++ b/st.c
@@ -358,6 +358,7 @@ static void strreset(void);
 static int tattrset(int);
 static void tprinter(char *s, size_t len);
 static void tdumpline(int);
+static void tdump(void);
 static void tclearregion(int, int, int, int);
 static void tcursor(int);
 static void tdeletechar(int);
@@ -1986,6 +1987,8 @@ csihandle(void) {
 	case 'i': /* MC -- Media Copy */
 		switch(csiescseq.arg[0]) {
 		case 0:
+			tdump();
+			break;
 		case 1:
 			tdumpline(term.c.y);
 			break;
@@ -2294,6 +2297,14 @@ tdumpline(int n) {
 	tprinter("\n", 1);
 }
 
+void
+tdump(void) {
+	int i;
+
+	for(i = 0; i < term.row; ++i)
+		tdumpline(i);
+}
+
 void
 tputtab(bool forward) {
 	uint x = term.c.x;